package io;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 提高每次读写的数据量减少实际读写的次数可以提高读写效率
 */
public class CopyDemo2 {
    public static void main(String[] args) throws IOException {
        /*
         * java.io.InputStream超类上定义了块读字节的操作：
         * int read(byte[] data)
         * 一次性读取给定字节数组data总长度的字节量并将读取到的所有字节存入到该数组中。
         * 返回值表达本次实际读取的字节数量。如果返回-1，表示已到达文件末尾
         */
        FileInputStream fis = new FileInputStream("./xu.mp3");
        FileOutputStream fos = new FileOutputStream("./xu_cp.mp3");
        byte[] data = new byte[1024 * 10];
        int len = 0;
        long start = System.currentTimeMillis();
        while ((len = fis.read(data)) != -1) {
            fos.write(data,0,len);
        }
        long end = System.currentTimeMillis();
        System.out.println("复制完成,耗时" + (end - start) + "ms");
        fis.close();
        fos.close();
    }
}
